# 修改元祖元素
tuple1 = (12, 34, 56)
tuple2 = ("abc", "mn")
# 修改元祖元素操作是非法的
# tuple1[0] = 100
# tuple1[0] = 200
# 链接元祖创建一个新的元祖，两个数据必须都是元祖
tuple3 = tuple1 + tuple2
print(tuple3)


# 删除元素
t1 = (1, 2, 3, 4)
del t1
print(t1)

# 任务1
# 使用input方法输入联系人姓名，电话，邮箱，地址：
# 定义元祖tuple1存储上述信息：
# 输出tuple1，查看联系人信息：
n = input("请输入联系人姓名:")
t = input("请输入13位手机号:")
e = input("请输入邮箱地址:")
a = input("请输入联系地址:")
tuple1 = ("姓名:", n, "电话:", t, "邮箱:", e, "地址", a)
print(tuple1)



# 列表创建
# 1.使用[]直接创建列表：
# 创建空列表
l1 = []
print(l1)
# 创建带有元素的列表
l2 = [1, 2,4, "python", 2.2]
print(l2)
print(type(l2))
#
# 2.使用list（）函数将其他烈性数据（字符串，元组，range函数）转换位列表：
l3 = list("hello")
# 1.转换字符串
l3 = list("hello")
print(l3)
#
# 2.转换元组
t1 = tuple("hello")
l4 = list(t1)
print(l4)
#
# 3.转化range函数
r1 = range(5)   #0 1 2 3 4
l5 = list(r1)
print(l5)

# 访问列表中的元素
# 使用索引访问元素示例
# 使用索引访问列表中的某个元素
l1 = ["p", "y", "t", "y", "h", "q", "w"]
# 访问h，使用正向索引
print(l1[4])
# 访问t，使用负向索引
print(l1[-5])

# 使用切片形式访问列表中的元素
le = ["p", "y", "t", "h", "o", "n"]
# 使用正数切片，截取索引为2， 3， 4的元素，默认步长为1
print(l2[2:5])
# 取索引3-5的元素，末尾
print(l2[3:])
# 取索引0-2的元素，开头
print(l2[:3])
# 取索引1-5，步长2
print(l2[1::2])
# 使用负切片，取后三个元素
print(l2[-3:])
# 使用付切片，取-5——-1，步长是2的元素
print(l2[-5:-1:2])

# 遍历列表
l3 = ["python", "java", "c", "c=++", "r", "go", "javascript"]
for i in l3:
    print(i)


# 修改列表元素
# 修改单个元素
l4 = [10, 56, 34, 2, 56, 44, 7]
# 将索引为2的元素值修改为100
l4[2] = 100
print(l4)
# 修改多个元素
l5 = [10, 56, 34, 2, 56, 44, 7]
# 修改第1~4个元素的值
l5[1: 4:1] = [45, -56, 98]
print(l5)

# 列表中添加元素
# append()用于在列表的末尾追加元素
l6 = ["a", "b", "c"]
l6.append("f")
print(l6)
# 列表添加列表
l6.append(["e", "f"])
print(l6)

# 2.extend（）在列表的末尾一次添加多个元素
l13 = ["a","b","c"]
l13.extend("d")
print(l13)
# 列表添加列表
l13.extend(["e", "f", "g", "h"])
print(l13)
l13.extend("world")
print(l13)


# 3，insert（）在列表的特定位置添加想要添加的特定元素
l14 = ["Python", "C", "Java"]
# 插入元素，在索引为2处插入go元素
l14.insert(2, "go")
print(l14)

# 删除元素
# remove删除，remove（）方法是移除掉列表里面的特定元素，但只会删除第一个和指定值相同的元素，而且必须保证该元素是存在的，否则会引发ValueError 错误
l15 = ["a", "b", "c", "d"]
l15.remove("a")
print(l15)


#
#
# pop（）方法用来删除列表中指定索引处的元素
l16 = [1, 3, 4, 5, 6, 7, 8, 9]
# 删除索引为4的元素
l16.pop(4)
print(l16)
# 删除最后一个元素
l16.pop()
print(l16)


# del 可以用来删除列表中单个元素或者一段连续的元素
# 删除银锁为5的元素
l17 = [1, 4, 8, 5, 6, 3, 2]
del l17[5]
print(l17)
# 删除8 5 6这三个元素
del l17[2:5]
print(l17)
# 若将列表中所有元素全部删除，可使用列表的clear（）方法
# 清空列表
l18 = [5, "a", 8, "python", 9, 5]
l18.clear()
print(l18)

## # 任务
# # 创建两个空列表name_list和phone_list，用于存储联系人姓名和电话；
# # 向列表中添加联系人信息；
# # 输入联系人编号修改信息；
# # 输入联系人编号删除信息；
# # # 使用clear()清空通讯录。name_list=['张三'， ’李四', '王五', ‘maliu'],phone_list=[123, 236, 258, 598]
name_list = []
phone_list = []
while 1:
    print("菜单：1.添加联系人 2.修改联系人 3.删除联系人")
    chioce = input("请输入选择：")
# 1.添加联系人，包括姓名，手机号
    if chioce == "1":
        name_list.append(input("请输入联系人姓名："))

    phone_list.append(input("请输入联系人手机号："))
    print(name_list)
    print(phone_list)
#  2.修改联系人信息
elif chioce == "2":
     num = int(input("请输入联系人编号"))
if len(name_list) > 0 and num <= len(name_list):
    name_list[num - 1] = input("修改联系人姓名")
    phone_list[num - 1] = input("修改联系电话")
else:
    print("联系人标号输入有误")
# 3.删除联系人信息
elif chioce == "3":
    num = int(input("请输入联系人编号："))
    if len(name_list) > 0 and num <= len(name_list):
         name_list.pop(num-1)
         phone_list.pop(num-1)
    else:
         print("联系人编号输入有误")
else:
     print("显示联系人信息")
     print(name_list)
     print(phone_list)